home *** CD-ROM | disk | FTP | other *** search
/ Giga Games 1 / Giga Games.iso / net / usenet / volume7 / nethack3 / patch8l < prev    next >
Encoding:
Internet Message Format  |  1990-06-08  |  52.7 KB

  1. Path: uunet!zephyr.ens.tek.com!tekred!saab!billr
  2. From: billr@saab.CNA.TEK.COM (Bill Randle)
  3. Newsgroups: comp.sources.games
  4. Subject: v10i030:  NetHack3 -  display oriented dungeons & dragons (Ver. 3.0), Patch8l
  5. Message-ID: <5738@tekred.CNA.TEK.COM>
  6. Date: 5 Jun 90 17:57:47 GMT
  7. Sender: news@tekred.CNA.TEK.COM
  8. Lines: 2079
  9. Approved: billr@saab.CNA.TEK.COM
  10.  
  11. Submitted-by: Izchak Miller <izchak@linc.cis.upenn.edu>
  12. Posting-number: Volume 10, Issue 30
  13. Archive-name: NetHack3/Patch8l
  14. Patch-To: NetHack3: Volume 7, Issue 56-93
  15.  
  16.  
  17.  
  18. #! /bin/sh
  19. # This is a shell archive.  Remove anything before this line, then unpack
  20. # it by saving it into a file and typing "sh file".  To overwrite existing
  21. # files, type "sh file -c".  You can also feed this as standard input via
  22. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  23. # will see the following message at the end:
  24. #        "End of archive 12 (of 24)."
  25. # Contents:  patch8.01
  26. # Wrapped by billr@saab on Mon Jun  4 15:27:23 1990
  27. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  28. if test -f 'patch8.01' -a "${1}" != "-c" ; then 
  29.   echo shar: Will not clobber existing file \"'patch8.01'\"
  30. else
  31. echo shar: Extracting \"'patch8.01'\" \(50042 characters\)
  32. sed "s/^X//" >'patch8.01' <<'END_OF_FILE'
  33. X*** src/Old/Makefile.src    Sun Jun  3 12:47:55 1990
  34. X--- src/Makefile.src    Sun Jun  3 08:53:06 1990
  35. X***************
  36. X*** 17,23 ****
  37. X  #
  38. X  SHELL=/bin/sh
  39. X  
  40. X! # if you are cross-compiling (eg. from Xenix into a Dos enviornment) you will
  41. X  # have to redefine this filename prefix (which is used to select the filenames
  42. X  # *main.c, *tty.c, and *unix.c for the target environment)
  43. X  #
  44. X--- 17,23 ----
  45. X  #
  46. X  SHELL=/bin/sh
  47. X  
  48. X! # if you are cross-compiling (eg. from Xenix into a Dos environment) you will
  49. X  # have to redefine this filename prefix (which is used to select the filenames
  50. X  # *main.c, *tty.c, and *unix.c for the target environment)
  51. X  #
  52. X***************
  53. X*** 25,34 ****
  54. X  # Systos wants 'pc'; everything else normally wants 'unix'
  55. X  TARG = unix
  56. X  
  57. X  # if you are using gcc as your compiler:
  58. X- #    add -fwritable-strings to your other CFLAGS
  59. X  #    uncomment the CC definition below if it's not in your environment
  60. X- #    ignore warnings about initializing non-const *s from const *s
  61. X  #    if you get setcgtty() warnings during execution, you are feeding gcc
  62. X  #        a non-ANSI <sys/ioctl.h> -- either run fixincludes on it or use
  63. X  #        -traditional in CFLAGS
  64. X--- 25,33 ----
  65. X  # Systos wants 'pc'; everything else normally wants 'unix'
  66. X  TARG = unix
  67. X  
  68. X+ 
  69. X  # if you are using gcc as your compiler:
  70. X  #    uncomment the CC definition below if it's not in your environment
  71. X  #    if you get setcgtty() warnings during execution, you are feeding gcc
  72. X  #        a non-ANSI <sys/ioctl.h> -- either run fixincludes on it or use
  73. X  #        -traditional in CFLAGS
  74. X***************
  75. X*** 38,46 ****
  76. X--- 37,55 ----
  77. X  # flags for 286 Xenix:
  78. X  # CFLAGS = -Ml2t16 -O -LARGE -I../include
  79. X  # LFLAGS = -Ml -F 4000 -SEG 512
  80. X+ 
  81. X  # flags for 286 Microport SysV-AT
  82. X  # CFLAGS = -DDUMB -Ml -I../include
  83. X  # LFLAGS = -Ml
  84. X+ 
  85. X+ # flags for Atari GCC
  86. X+ # CFLAGS = -mshort -O -I../include
  87. X+ # LFLAGS = -s -mshort
  88. X+ 
  89. X+ # flags for Apollos using their native cc
  90. X+ # (as long as it claims to be __STDC__ but isn't)
  91. X+ # CFLAGS = -DAPOLLO -O -I../include
  92. X+ 
  93. X  # flags for debugging:
  94. X  # CFLAGS = -g -I../include
  95. X  
  96. X***************
  97. X*** 47,59 ****
  98. X--- 56,79 ----
  99. X  CFLAGS = -O -I../include
  100. X  LFLAGS =
  101. X  
  102. X+ 
  103. X  # on some systems the termcap library is in -ltermcap or -lcurses
  104. X  # on 386 Xenix, the -ltermlib tputs() seems not to work; use -lcurses instead
  105. X  # Sysatt uses shared library in lieu of this option
  106. X+ # Systos needs -lcurses16 if you use -mshort
  107. X+ #
  108. X  # TERMLIB = -ltermcap
  109. X  # TERMLIB = -lcurses
  110. X  TERMLIB = -ltermlib
  111. X  
  112. X+ # any other strange libraries your system needs (for Sysunix only -- the more
  113. X+ # specialized targets should already be right)
  114. X+ #
  115. X+ # on HP-UX, the malloc(3x) routines in libmalloc.a seem to align things
  116. X+ # better than the malloc(3) ones in libc.a
  117. X+ # LIBS = -lmalloc
  118. X+ LIBS =
  119. X+ 
  120. X  # yacc/lex programs to use to generate lev_comp.c, lev_comp.h, and lev_lex.c.
  121. X  # if, instead of yacc/lex you have bison/flex, comment/uncomment the following.
  122. X  YACC     = yacc
  123. X***************
  124. X*** 91,98 ****
  125. X  # all .c that are part of the main NetHack program and are not system specific
  126. X  
  127. X  # now the other .c files, with duplicates commented out
  128. X! MAKESRC = makedefs.c panic.c # monst.c objects.c
  129. X! SPLEVSRC = lev_comp.c lev_lex.c lev_main.c # alloc.c monst.c objects.c panic.c
  130. X  TARGSRC = $(TARG)main.c $(TARG)tty.c $(TARG)unix.c
  131. X  
  132. X  CSOURCES = $(HACKCSRC) $(TARGSRC) $(MAKESRC) $(SPLEVSRC)
  133. X--- 111,118 ----
  134. X  # all .c that are part of the main NetHack program and are not system specific
  135. X  
  136. X  # now the other .c files, with duplicates commented out
  137. X! MAKESRC = makedefs.c # monst.c objects.c
  138. X! SPLEVSRC = lev_comp.c lev_lex.c lev_main.c panic.c # alloc.c monst.c objects.c
  139. X  TARGSRC = $(TARG)main.c $(TARG)tty.c $(TARG)unix.c
  140. X  
  141. X  CSOURCES = $(HACKCSRC) $(TARGSRC) $(MAKESRC) $(SPLEVSRC)
  142. X***************
  143. X*** 106,113 ****
  144. X         youprop.h
  145. X  
  146. X  # all .h files except date.h, onames.h, pm.h & trap.h which would cause
  147. X! # dependency loops if run through "make depend".
  148. X! # and lev_comp.h, a special level file
  149. X  
  150. X  HSOURCES = $(HACKINCL) date.h onames.h pm.h trap.h lev_comp.h
  151. X  
  152. X--- 126,133 ----
  153. X         youprop.h
  154. X  
  155. X  # all .h files except date.h, onames.h, pm.h & trap.h which would cause
  156. X! # dependency loops if run through "make depend"
  157. X! # and lev_comp.h, a special level file.
  158. X  
  159. X  HSOURCES = $(HACKINCL) date.h onames.h pm.h trap.h lev_comp.h
  160. X  
  161. X***************
  162. X*** 114,120 ****
  163. X  SOURCES = $(CSOURCES) $(HSOURCES)
  164. X  
  165. X  # object files for makedefs
  166. X! MAKEOBJS = makedefs.o monst.o objects.o panic.o
  167. X  
  168. X  # object files for special levels compiler
  169. X  SPLEVOBJS = lev_comp.o lev_lex.o lev_main.o alloc.o monst.o objects.o panic.o
  170. X--- 134,140 ----
  171. X  SOURCES = $(CSOURCES) $(HSOURCES)
  172. X  
  173. X  # object files for makedefs
  174. X! MAKEOBJS = makedefs.o monst.o objects.o
  175. X  
  176. X  # object files for special levels compiler
  177. X  SPLEVOBJS = lev_comp.o lev_lex.o lev_main.o alloc.o monst.o objects.o panic.o
  178. X***************
  179. X*** 138,144 ****
  180. X  
  181. X  Sysunix:    $(HOBJ) Makefile
  182. X      @echo "Loading ..."
  183. X!     @$(CC) $(LFLAGS) -o $(GAME) $(HOBJ) $(TERMLIB)
  184. X      @touch Sysunix
  185. X  
  186. X  Sys3B2:    $(HOBJ) Makefile
  187. X--- 158,164 ----
  188. X  
  189. X  Sysunix:    $(HOBJ) Makefile
  190. X      @echo "Loading ..."
  191. X!     @$(CC) $(LFLAGS) -o $(GAME) $(HOBJ) $(TERMLIB) $(LIBS)
  192. X      @touch Sysunix
  193. X  
  194. X  Sys3B2:    $(HOBJ) Makefile
  195. X***************
  196. X*** 151,159 ****
  197. X      @$(LD) $(LFLAGS) /lib/crt0s.o /lib/shlib.ifile -o $(GAME) $(HOBJ)
  198. X      @touch Sysatt
  199. X  
  200. X! Systos:    $(HOBJ) oldtos.o Makefile
  201. X      @echo "Loading ..."
  202. X!     @$(CC) $(LFLAGS) -o $(GAME) $(HOBJ) oldtos.o $(TERMLIB)
  203. X      @touch Systos
  204. X  
  205. X  SysV-AT:    DUMB.Setup $(HOBJ) Makefile
  206. X--- 171,179 ----
  207. X      @$(LD) $(LFLAGS) /lib/crt0s.o /lib/shlib.ifile -o $(GAME) $(HOBJ)
  208. X      @touch Sysatt
  209. X  
  210. X! Systos:    $(HOBJ) msdos.o Makefile
  211. X      @echo "Loading ..."
  212. X!     @$(CC) $(LFLAGS) -o $(GAME) $(HOBJ) msdos.o $(TERMLIB)
  213. X      @touch Systos
  214. X  
  215. X  SysV-AT:    DUMB.Setup $(HOBJ) Makefile
  216. X***************
  217. X*** 184,198 ****
  218. X  all:    $(GAME)
  219. X  
  220. X  #
  221. X! #    Please note:    The dependency lines for the modules here are
  222. X! #            deliberately incorrect.  Including "hack.h" in
  223. X! #            the dependency list would cause a dependency
  224. X! #            loop.
  225. X  #
  226. X  makedefs:    $(MAKEOBJS)
  227. X      $(CC) $(LFLAGS) -o makedefs $(MAKEOBJS)
  228. X  
  229. X! makedefs.o:  ../include/config.h ../include/permonst.h
  230. X  
  231. X  lev_comp:  $(SPLEVOBJS)
  232. X      $(CC) $(LFLAGS) -o lev_comp $(SPLEVOBJS)
  233. X--- 204,215 ----
  234. X  all:    $(GAME)
  235. X  
  236. X  #
  237. X! #    dependencies for auxiliary programs
  238. X  #
  239. X  makedefs:    $(MAKEOBJS)
  240. X      $(CC) $(LFLAGS) -o makedefs $(MAKEOBJS)
  241. X  
  242. X! makedefs.o:  ../include/config.h ../include/permonst.h ../include/objclass.h ../include/patchlevel.h
  243. X  
  244. X  lev_comp:  $(SPLEVOBJS)
  245. X      $(CC) $(LFLAGS) -o lev_comp $(SPLEVOBJS)
  246. X***************
  247. X*** 199,207 ****
  248. X  
  249. X  lev_comp.o:  ../include/hack.h ../include/sp_lev.h
  250. X  
  251. X! lev_lex.o:   ../include/lev_comp.h ../include/hack.h ../include/sp_lev.h
  252. X  
  253. X! lev_main.o:  ../include/hack.h ../include/sp_lev.h
  254. X  
  255. X  ../include/lev_comp.h: lev_comp.c
  256. X  
  257. X--- 216,224 ----
  258. X  
  259. X  lev_comp.o:  ../include/hack.h ../include/sp_lev.h
  260. X  
  261. X! lev_lex.o:   ../include/hack.h ../include/lev_comp.h ../include/sp_lev.h
  262. X  
  263. X! lev_main.o:  ../include/hack.h
  264. X  
  265. X  ../include/lev_comp.h: lev_comp.c
  266. X  
  267. X***************
  268. X*** 216,222 ****
  269. X  
  270. X  #
  271. X  #    The following include files depend on makedefs to be created.
  272. X! #    As a result, they are not defined in HACKINCL, instead, their
  273. X  #    dependencies are explicitly outlined here.
  274. X  #
  275. X  
  276. X--- 233,239 ----
  277. X  
  278. X  #
  279. X  #    The following include files depend on makedefs to be created.
  280. X! #    As a result, they are not defined in HACKINCL; instead, their
  281. X  #    dependencies are explicitly outlined here.
  282. X  #
  283. X  
  284. X***************
  285. X*** 230,236 ****
  286. X  ../include/date.h:    $(HACKCSRC) $(TARGSRC) ../include/hack.h makedefs
  287. X      ./makedefs -v
  288. X  
  289. X! ../include/trap.h:    ../include/config.h makedefs
  290. X      ./makedefs -t
  291. X  
  292. X  ../include/onames.h:    makedefs
  293. X--- 247,253 ----
  294. X  ../include/date.h:    $(HACKCSRC) $(TARGSRC) ../include/hack.h makedefs
  295. X      ./makedefs -v
  296. X  
  297. X! ../include/trap.h:    makedefs
  298. X      ./makedefs -t
  299. X  
  300. X  ../include/onames.h:    makedefs
  301. X***************
  302. X*** 241,247 ****
  303. X  
  304. X  #
  305. X  #    The following programs vary depending on what OS you are using.
  306. X! #    As a result, they are not defined in HACKSRC, and their dependancies
  307. X  #    are explicitly outlined here.
  308. X  #
  309. X  main.o:    ../include/hack.h $(TARG)main.c
  310. X--- 258,264 ----
  311. X  
  312. X  #
  313. X  #    The following programs vary depending on what OS you are using.
  314. X! #    As a result, they are not defined in HACKSRC, and their dependencies
  315. X  #    are explicitly outlined here.
  316. X  #
  317. X  main.o:    ../include/hack.h $(TARG)main.c
  318. X***************
  319. X*** 281,289 ****
  320. X  spotless: clean
  321. X      rm -f a.out core $(GAME) lev_comp makedefs
  322. X      rm -f ../include/onames.h ../include/pm.h
  323. X-     touch ../include/onames.h ../include/pm.h
  324. X-     touch makedefs.c
  325. X- #(make sure files exist and have timestamps in the right order for next compile)
  326. X  
  327. X  
  328. X  depend:
  329. X--- 298,303 ----
  330. X***************
  331. X*** 331,337 ****
  332. X      @rm -f Makefile.bak
  333. X  
  334. X  # PC dependency for Systos that won't be made on a UNIX system
  335. X! oldtos.o:  ../include/hack.h
  336. X  
  337. X  # DO NOT DELETE THIS LINE
  338. X  
  339. X--- 345,351 ----
  340. X      @rm -f Makefile.bak
  341. X  
  342. X  # PC dependency for Systos that won't be made on a UNIX system
  343. X! msdos.o:  ../include/hack.h
  344. X  
  345. X  # DO NOT DELETE THIS LINE
  346. X  
  347. X***************
  348. X*** 372,378 ****
  349. X  mkmaze.o:  ../include/hack.h
  350. X  mkobj.o:  ../include/hack.h
  351. X  mkroom.o:  ../include/hack.h
  352. X! mon.o:  ../include/hack.h ../include/mfndpos.h ../include/artifact.h ../include/wseg.h
  353. X  mondata.o:  ../include/hack.h ../include/eshk.h ../include/epri.h
  354. X  monmove.o:  ../include/hack.h ../include/mfndpos.h ../include/artifact.h
  355. X  monst.o:  ../include/config.h ../include/permonst.h ../include/monsym.h ../include/eshk.h ../include/vault.h ../include/epri.h ../include/color.h
  356. X--- 386,392 ----
  357. X  mkmaze.o:  ../include/hack.h
  358. X  mkobj.o:  ../include/hack.h
  359. X  mkroom.o:  ../include/hack.h
  360. X! mon.o:  ../include/hack.h ../include/mfndpos.h ../include/wseg.h
  361. X  mondata.o:  ../include/hack.h ../include/eshk.h ../include/epri.h
  362. X  monmove.o:  ../include/hack.h ../include/mfndpos.h ../include/artifact.h
  363. X  monst.o:  ../include/config.h ../include/permonst.h ../include/monsym.h ../include/eshk.h ../include/vault.h ../include/epri.h ../include/color.h
  364. X***************
  365. X*** 430,438 ****
  366. X              touch ../include/decl.h
  367. X  ../include/global.h:  ../include/coord.h ../include/vmsconf.h ../include/unixconf.h ../include/pcconf.h ../include/tosconf.h ../include/amiconf.h ../include/macconf.h
  368. X              touch ../include/global.h
  369. X! ../include/hack.h:  ../include/config.h ../include/decl.h ../include/monsym.h ../include/mkroom.h ../include/objclass.h ../include/gold.h ../include/trap.h ../include/flag.h ../include/rm.h 
  370. X              touch ../include/hack.h
  371. X! ../include/macconf.h:  ../include/msdos.h ../include/system.h 
  372. X              touch ../include/macconf.h
  373. X  ../include/pcconf.h:  ../include/msdos.h ../include/system.h
  374. X              touch ../include/pcconf.h
  375. X--- 444,452 ----
  376. X              touch ../include/decl.h
  377. X  ../include/global.h:  ../include/coord.h ../include/vmsconf.h ../include/unixconf.h ../include/pcconf.h ../include/tosconf.h ../include/amiconf.h ../include/macconf.h
  378. X              touch ../include/global.h
  379. X! ../include/hack.h:  ../include/config.h ../include/decl.h ../include/monsym.h ../include/mkroom.h ../include/objclass.h ../include/gold.h ../include/trap.h ../include/flag.h ../include/rm.h  ../include/trampoli.h 
  380. X              touch ../include/hack.h
  381. X! ../include/macconf.h:  ../include/msdos.h ../include/system.h  ../include/MacAlert.h
  382. X              touch ../include/macconf.h
  383. X  ../include/pcconf.h:  ../include/msdos.h ../include/system.h
  384. X              touch ../include/pcconf.h
  385. X*** src/Old/allmain.c    Sun Jun  3 12:48:24 1990
  386. X--- src/allmain.c    Tue Mar 27 20:26:15 1990
  387. X***************
  388. X*** 27,78 ****
  389. X  
  390. X      for(;;) {
  391. X  #ifdef MACOS
  392. X-     static    int old_dlevel = 0;
  393. X-     extern    xchar dlevel; 
  394. X      extern    Boolean    lowMem;
  395. X      extern    long    lowMemLimit;
  396. X!     if (!(moves % 20) || lowMem || FreeMem() < lowMemLimit || old_dlevel != dlevel) {
  397. X!         old_dlevel = dlevel;
  398. X!         UnloadSeg(ddocall);
  399. X!         UnloadSeg(castmu);
  400. X!         UnloadSeg(doforce);
  401. X!         UnloadSeg(doeat);
  402. X!         UnloadSeg(dozap);
  403. X!         UnloadSeg(initterm);
  404. X!         UnloadSeg(doapply);
  405. X!         UnloadSeg(dokick);
  406. X!         UnloadSeg(outrumor);
  407. X!         UnloadSeg(steal);
  408. X!         UnloadSeg(done1);
  409. X!         UnloadSeg(dodrink);
  410. X!         UnloadSeg(doturn);
  411. X! #ifdef REINCARNATION
  412. X!         UnloadSeg(makeroguerooms);
  413. X! #endif
  414. X! #ifdef STRONGHOLD
  415. X!         UnloadSeg(load_special);
  416. X! #endif
  417. X!         UnloadSeg(mklev);
  418. X! #ifdef MUSIC
  419. X!         UnloadSeg(do_play_instrument);
  420. X! #endif
  421. X! #ifdef SPELLS
  422. X!         UnloadSeg(docast);
  423. X! #endif
  424. X!         UnloadSeg(savebones);
  425. X!         UnloadSeg(expels);
  426. X!         UnloadSeg(attack);
  427. X!         UnloadSeg(doname);
  428. X!         if (FreeMem() < 36864)
  429. X!         {
  430. X!             long    space;
  431. X!             
  432. X!             UnloadSeg(newhp);
  433. X!             UnloadSeg(attack);
  434. X  
  435. X!             space = 0x7FFFFFFFL;
  436. X!             MaxMem(&space);
  437. X!         }
  438. X      }
  439. X  #endif
  440. X  #ifdef CLIPPING
  441. X--- 27,38 ----
  442. X  
  443. X      for(;;) {
  444. X  #ifdef MACOS
  445. X      extern    Boolean    lowMem;
  446. X      extern    long    lowMemLimit;
  447. X!     if (!(moves % 20) || lowMem || FreeMem() < lowMemLimit) {
  448. X!         long tmp = 0;
  449. X  
  450. X!         freeSegs(&tmp);
  451. X      }
  452. X  #endif
  453. X  #ifdef CLIPPING
  454. X*** src/Old/alloc.c    Sun Jun  3 12:48:39 1990
  455. X--- src/alloc.c    Fri Mar 30 20:54:43 1990
  456. X***************
  457. X*** 5,11 ****
  458. X  /* since this file is also used in auxiliary programs, don't include all the 
  459. X   * function declarations for all of nethack
  460. X   */
  461. X! #define EXTERN_H
  462. X  #include "config.h"
  463. X  long *FDECL(alloc,(unsigned int));
  464. X  
  465. X--- 5,11 ----
  466. X  /* since this file is also used in auxiliary programs, don't include all the 
  467. X   * function declarations for all of nethack
  468. X   */
  469. X! #define EXTERN_H    /* comment line for pre-compiled headers */
  470. X  #include "config.h"
  471. X  long *FDECL(alloc,(unsigned int));
  472. X  
  473. X*** src/Old/apply.c    Sun Jun  3 12:48:54 1990
  474. X--- src/apply.c    Sat Jun  2 19:44:47 1990
  475. X***************
  476. X*** 13,21 ****
  477. X  
  478. X  #ifdef OVLB
  479. X  
  480. X! static const char tools[] = { TOOL_SYM, 0 };
  481. X  
  482. X! static boolean did_dig_msg;
  483. X  
  484. X  static struct monst *FDECL(bchit, (int, int, int, CHAR_P));
  485. X  static void FDECL(use_camera, (struct obj *));
  486. X--- 13,21 ----
  487. X  
  488. X  #ifdef OVLB
  489. X  
  490. X! static const char NEARDATA tools[] = { TOOL_SYM, 0 };
  491. X  
  492. X! static boolean NEARDATA did_dig_msg;
  493. X  
  494. X  static struct monst *FDECL(bchit, (int, int, int, CHAR_P));
  495. X  static void FDECL(use_camera, (struct obj *));
  496. X***************
  497. X*** 25,31 ****
  498. X  #ifdef WALKIES
  499. X  static void FDECL(use_leash, (struct obj *));
  500. X  #endif
  501. X! OSTATIC int NDECL(dig);
  502. X  static boolean FDECL(wield_tool, (struct obj *));
  503. X  static int FDECL(use_pick_axe, (struct obj *));
  504. X  #ifdef MEDUSA
  505. X--- 25,31 ----
  506. X  #ifdef WALKIES
  507. X  static void FDECL(use_leash, (struct obj *));
  508. X  #endif
  509. X! STATIC_DCL int NDECL(dig);
  510. X  static boolean FDECL(wield_tool, (struct obj *));
  511. X  static int FDECL(use_pick_axe, (struct obj *));
  512. X  #ifdef MEDUSA
  513. X***************
  514. X*** 353,358 ****
  515. X--- 353,361 ----
  516. X      return;
  517. X  }
  518. X  
  519. X+ #endif /* OVLB */
  520. X+ #ifdef OVL1
  521. X+ 
  522. X  boolean
  523. X  next_to_u()
  524. X  {
  525. X***************
  526. X*** 377,382 ****
  527. X--- 380,387 ----
  528. X      return(TRUE);
  529. X  }
  530. X  
  531. X+ #endif /* OVL1 */
  532. X+ #ifdef OVLB
  533. X  struct obj *
  534. X  get_mleash(mtmp)     /* assuming mtmp->mleashed has been checked */
  535. X  register struct monst *mtmp;
  536. X***************
  537. X*** 391,399 ****
  538. X      }
  539. X      return((struct obj *)0);
  540. X  }
  541. X- #endif /* WALKIES */
  542. X  #endif /* OVLB */
  543. X  #ifdef OVL0
  544. X  #ifdef WALKIES
  545. X  void
  546. X  check_leash(x, y)
  547. X--- 396,406 ----
  548. X      }
  549. X      return((struct obj *)0);
  550. X  }
  551. X  #endif /* OVLB */
  552. X+ 
  553. X+ #endif /* WALKIES */
  554. X  #ifdef OVL0
  555. X+ 
  556. X  #ifdef WALKIES
  557. X  void
  558. X  check_leash(x, y)
  559. X***************
  560. X*** 446,453 ****
  561. X  #endif /* OVL0 */
  562. X  #ifdef OVLB
  563. X  
  564. X! XSTATIC
  565. X! int
  566. X  dig() {
  567. X      register struct rm *lev;
  568. X      register int dpx = dig_pos.x, dpy = dig_pos.y;
  569. X--- 453,459 ----
  570. X  #endif /* OVL0 */
  571. X  #ifdef OVLB
  572. X  
  573. X! STATIC_OVL int
  574. X  dig() {
  575. X      register struct rm *lev;
  576. X      register int dpx = dig_pos.x, dpy = dig_pos.y;
  577. X***************
  578. X*** 632,637 ****
  579. X--- 638,646 ----
  580. X                  u.utraptype = 0;
  581. X                  }
  582. X                  unsee();
  583. X+ #ifdef MACOS
  584. X+                 segments |= SEG_APPLY;
  585. X+ #endif
  586. X                  goto_level(dlevel+1, FALSE, TRUE);
  587. X  #ifdef WALKIES
  588. X              }
  589. X***************
  590. X*** 1067,1073 ****
  591. X      return;
  592. X  }
  593. X  
  594. X! static const char cuddly[] = { TOOL_SYM, 0 };
  595. X  
  596. X  int
  597. X  dorub()
  598. X--- 1076,1082 ----
  599. X      return;
  600. X  }
  601. X  
  602. X! static const char NEARDATA cuddly[] = { TOOL_SYM, 0 };
  603. X  
  604. X  int
  605. X  dorub()
  606. X***************
  607. X*** 1147,1153 ****
  608. X  use_tinning_kit(obj)
  609. X  register struct obj *obj;
  610. X  {
  611. X!     register struct obj *corpse, *can;
  612. X  
  613. X      /* This takes only 1 move.  If this is to be changed to take many
  614. X       * moves, we've got to deal with decaying corpses...
  615. X--- 1156,1162 ----
  616. X  use_tinning_kit(obj)
  617. X  register struct obj *obj;
  618. X  {
  619. X!     register struct obj *corpse, *can = (struct obj *)0;
  620. X  
  621. X      /* This takes only 1 move.  If this is to be changed to take many
  622. X       * moves, we've got to deal with decaying corpses...
  623. X***************
  624. X*** 1172,1189 ****
  625. X          You("can't tin something that insubstantial!");
  626. X          return;
  627. X      }
  628. X!     can = mksobj(TIN,FALSE);
  629. X!     can->corpsenm = corpse->corpsenm;
  630. X!     can->quan = 1; /* Defeat the occasional creation of pairs of tins */
  631. X!     can->owt = weight(can);
  632. X!     can->known = 1;
  633. X!     can->spe = 0; /* No spinach allowed... */
  634. X!     can->cursed = obj->cursed;
  635. X!     can->blessed = obj->blessed;
  636. X!     can = addinv(can);
  637. X!     You("now have %s.", doname(can));
  638. X!     if (carried(corpse)) useup(corpse);
  639. X!     else useupf(corpse);
  640. X  }
  641. X  
  642. X  int
  643. X--- 1181,1199 ----
  644. X          You("can't tin something that insubstantial!");
  645. X          return;
  646. X      }
  647. X!     if(can = mksobj(TIN,FALSE)) {
  648. X!         can->corpsenm = corpse->corpsenm;
  649. X!         can->quan = 1; /*Defeat the occasional creation of pairs of tins */
  650. X!         can->owt = weight(can);
  651. X!         can->known = 1;
  652. X!         can->spe = -1; /* Mark tinned tins. No spinach allowed... */
  653. X!         can->cursed = obj->cursed;
  654. X!         can->blessed = obj->blessed;
  655. X!         can = addinv(can);
  656. X!         You("now have %s.", doname(can));
  657. X!         if (carried(corpse)) useup(corpse);
  658. X!         else useupf(corpse);
  659. X!     } else pline("Tinning failed.");
  660. X  }
  661. X  
  662. X  int
  663. X***************
  664. X*** 1222,1229 ****
  665. X          make_sick(0L, TRUE);
  666. X          did_something++;
  667. X      }
  668. X!     if (Blinded && (!did_something || blessed)) {
  669. X!         make_blinded(0L, TRUE);
  670. X          did_something++;
  671. X      }
  672. X      if (Hallucination && (!did_something || blessed)) {
  673. X--- 1232,1239 ----
  674. X          make_sick(0L, TRUE);
  675. X          did_something++;
  676. X      }
  677. X!     if (Blinded > (long)(u.ucreamed+1) && (!did_something || blessed)) {
  678. X!         make_blinded(u.ucreamed ? (long)(u.ucreamed+1) : 0L, TRUE);
  679. X          did_something++;
  680. X      }
  681. X      if (Hallucination && (!did_something || blessed)) {
  682. X*** src/Old/artifact.c    Sun Jun  3 12:49:44 1990
  683. X--- src/artifact.c    Sat May 26 21:13:05 1990
  684. X***************
  685. X*** 10,21 ****
  686. X  
  687. X  #ifndef OVLB
  688. X  
  689. X! OSTATIC const struct artifact artilist[];
  690. X  
  691. X  #else /* OVLB */
  692. X  
  693. X  /* the artifacts (currently weapons only) */
  694. X! XSTATIC const struct artifact artilist[] = {
  695. X  
  696. X  #define        NO_ATTK    { 0, 0, 0, 0 }
  697. X  
  698. X--- 10,21 ----
  699. X  
  700. X  #ifndef OVLB
  701. X  
  702. X! STATIC_DCL const struct artifact artilist[];
  703. X  
  704. X  #else /* OVLB */
  705. X  
  706. X  /* the artifacts (currently weapons only) */
  707. X! STATIC_OVL const struct artifact NEARDATA artilist[] = {
  708. X  
  709. X  #define        NO_ATTK    { 0, 0, 0, 0 }
  710. X  
  711. X***************
  712. X*** 110,117 ****
  713. X  
  714. X  #endif /* OVLB */
  715. X  
  716. X! OSTATIC const struct artifact *FDECL(get_artifact, (struct obj *));
  717. X! OSTATIC int FDECL(spec_applies, (const struct artifact *, struct permonst *));
  718. X  
  719. X  #ifdef OVLB
  720. X  
  721. X--- 110,117 ----
  722. X  
  723. X  #endif /* OVLB */
  724. X  
  725. X! STATIC_DCL const struct artifact *FDECL(get_artifact, (struct obj *));
  726. X! STATIC_DCL int FDECL(spec_applies, (const struct artifact *, struct permonst *));
  727. X  
  728. X  #ifdef OVLB
  729. X  
  730. X***************
  731. X*** 158,164 ****
  732. X  #endif /* OVLB */
  733. X  #ifdef OVL0
  734. X  
  735. X! XSTATIC const struct artifact *
  736. X  get_artifact(otmp)
  737. X  struct obj *otmp;
  738. X  {
  739. X--- 158,164 ----
  740. X  #endif /* OVLB */
  741. X  #ifdef OVL0
  742. X  
  743. X! STATIC_OVL const struct artifact *
  744. X  get_artifact(otmp)
  745. X  struct obj *otmp;
  746. X  {
  747. X***************
  748. X*** 174,180 ****
  749. X  }
  750. X  
  751. X  #endif /* OVL0 */
  752. X! #ifdef OVLB
  753. X  
  754. X  boolean
  755. X  is_artifact(otmp)
  756. X--- 174,180 ----
  757. X  }
  758. X  
  759. X  #endif /* OVL0 */
  760. X! #ifdef OVL2
  761. X  
  762. X  boolean
  763. X  is_artifact(otmp)
  764. X***************
  765. X*** 183,188 ****
  766. X--- 183,190 ----
  767. X      return(get_artifact(otmp) != (struct artifact *)0);
  768. X  }
  769. X  
  770. X+ #endif /* OVL2 */
  771. X+ #ifdef OVLB
  772. X  boolean
  773. X  exist_artifact(otmp, name)
  774. X  register struct obj *otmp;
  775. X***************
  776. X*** 298,304 ****
  777. X      return(0);
  778. X  }
  779. X  
  780. X! XSTATIC int
  781. X  spec_applies(weap, ptr)
  782. X  register const struct artifact *weap;
  783. X  struct permonst *ptr;
  784. X--- 300,309 ----
  785. X      return(0);
  786. X  }
  787. X  
  788. X! #endif /* OVLB */
  789. X! #ifdef OVL1
  790. X! 
  791. X! STATIC_OVL int
  792. X  spec_applies(weap, ptr)
  793. X  register const struct artifact *weap;
  794. X  struct permonst *ptr;
  795. X***************
  796. X*** 327,335 ****
  797. X      }
  798. X      return(0);
  799. X  }
  800. X- 
  801. X- #endif /* OVLB */
  802. X- #ifdef OVL1
  803. X  
  804. X  int
  805. X  spec_abon(otmp, ptr)
  806. X--- 332,337 ----
  807. X*** src/Old/attrib.c    Sun Jun  3 12:50:04 1990
  808. X--- src/attrib.c    Fri Apr 13 18:46:30 1990
  809. X***************
  810. X*** 152,158 ****
  811. X             {    20, 15, 15, 15, 20, 15 },
  812. X               0,  0, 12, 10, 14,  1,  0 };
  813. X  
  814. X! static const struct clattr *NDECL(clx);
  815. X  static void NDECL(init_align);
  816. X  
  817. X  void
  818. X--- 152,158 ----
  819. X             {    20, 15, 15, 15, 20, 15 },
  820. X               0,  0, 12, 10, 14,  1,  0 };
  821. X  
  822. X! static const struct clattr NEARDATA *NDECL(clx);
  823. X  static void NDECL(init_align);
  824. X  
  825. X  void
  826. X***************
  827. X*** 164,170 ****
  828. X      if(!incr) return;
  829. X  
  830. X      if(incr > 0) {
  831. X!         if((AMAX(ndx) >= attrmax.a[ndx]) && (ACURR(ndx) == AMAX(ndx))) {
  832. X  
  833. X          if(!silent && flags.verbose)
  834. X              pline("You're already as %s as you can get.",
  835. X--- 164,170 ----
  836. X      if(!incr) return;
  837. X  
  838. X      if(incr > 0) {
  839. X!         if((AMAX(ndx) >= attrmax.a[ndx]) && (ACURR(ndx) >= AMAX(ndx))) {
  840. X  
  841. X          if(!silent && flags.verbose)
  842. X              pline("You're already as %s as you can get.",
  843. X***************
  844. X*** 255,261 ****
  845. X  
  846. X      for(otmp = invent; otmp; otmp=otmp->nobj)
  847. X          if(otmp->otyp == LUCKSTONE) {
  848. X!         if (otmp->cursed) bonchance -= otmp->quan;
  849. X          else if (otmp->blessed) bonchance += otmp->quan;
  850. X          else if (parameter) bonchance += otmp->quan;
  851. X          }
  852. X--- 255,261 ----
  853. X  
  854. X      for(otmp = invent; otmp; otmp=otmp->nobj)
  855. X          if(otmp->otyp == LUCKSTONE) {
  856. X!         if (otmp->cursed) bonchance -= (int)otmp->quan;
  857. X          else if (otmp->blessed) bonchance += otmp->quan;
  858. X          else if (parameter) bonchance += otmp->quan;
  859. X          }
  860. X*** src/Old/bones.c    Sun Jun  3 12:50:23 1990
  861. X--- src/bones.c    Tue May 22 20:40:21 1990
  862. X***************
  863. X*** 19,25 ****
  864. X  static void NDECL(compress_bones);
  865. X  #endif
  866. X  static boolean FDECL(no_bones_level, (int));
  867. X! void FDECL(resetobjs,(struct obj *));
  868. X  #ifdef TUTTI_FRUTTI
  869. X  static void FDECL(goodfruit, (int));
  870. X  #endif
  871. X--- 19,25 ----
  872. X  static void NDECL(compress_bones);
  873. X  #endif
  874. X  static boolean FDECL(no_bones_level, (int));
  875. X! static void FDECL(resetobjs,(struct obj *,BOOLEAN_P));
  876. X  #ifdef TUTTI_FRUTTI
  877. X  static void FDECL(goodfruit, (int));
  878. X  #endif
  879. X***************
  880. X*** 78,119 ****
  881. X  }
  882. X  #endif
  883. X  
  884. X! void
  885. X! resetobjs(ochain)
  886. X  struct obj *ochain;
  887. X  {
  888. X      struct obj *otmp;
  889. X  
  890. X      for (otmp = ochain; otmp; otmp = otmp->nobj) {
  891. X-         otmp->o_id = 0;
  892. X          if (((otmp->otyp != CORPSE && otmp->otyp != STATUE)
  893. X              || otmp->corpsenm < PM_ARCHEOLOGIST)
  894. X  #ifdef NAMED_ITEMS
  895. X!             && !(is_artifact(otmp) && !exist_artifact(otmp,ONAME(otmp)))
  896. X  #endif
  897. X          )
  898. X              otmp->onamelth = 0;
  899. X  #ifdef NAMED_ITEMS
  900. X!         else if (is_artifact(otmp))
  901. X              artifact_exists(otmp,ONAME(otmp),TRUE);
  902. X  #endif
  903. X!         if(objects[otmp->otyp].oc_uses_known) otmp->known = 0;
  904. X  #ifdef TUTTI_FRUTTI
  905. X!         if(otmp->otyp == SLIME_MOLD) goodfruit(otmp->spe);
  906. X  #endif
  907. X-         otmp->dknown = otmp->bknown = 0;
  908. X-         otmp->invlet = 0;
  909. X  #ifdef MAIL
  910. X!         if (otmp->otyp == SCR_MAIL)
  911. X!             otmp->spe = 1;
  912. X  #endif
  913. X  #ifdef POLYSELF
  914. X!         if (otmp->otyp == EGG)
  915. X!             otmp->spe = 0;
  916. X  #endif
  917. X!         if(otmp->otyp == AMULET_OF_YENDOR && !otmp->spe) {
  918. X!             otmp->spe = -1;      /* no longer the actual amulet */
  919. X!             curse(otmp);
  920. X          }
  921. X      }            
  922. X  }
  923. X--- 78,125 ----
  924. X  }
  925. X  #endif
  926. X  
  927. X! static void
  928. X! resetobjs(ochain,restore)
  929. X  struct obj *ochain;
  930. X+ boolean restore;
  931. X  {
  932. X      struct obj *otmp;
  933. X  
  934. X      for (otmp = ochain; otmp; otmp = otmp->nobj) {
  935. X          if (((otmp->otyp != CORPSE && otmp->otyp != STATUE)
  936. X              || otmp->corpsenm < PM_ARCHEOLOGIST)
  937. X  #ifdef NAMED_ITEMS
  938. X!             && (!is_artifact(otmp) ||
  939. X!                 (exist_artifact(otmp,ONAME(otmp)) && restore))
  940. X  #endif
  941. X          )
  942. X              otmp->onamelth = 0;
  943. X  #ifdef NAMED_ITEMS
  944. X!         else if (is_artifact(otmp) && restore)
  945. X              artifact_exists(otmp,ONAME(otmp),TRUE);
  946. X  #endif
  947. X!         if (!restore) {
  948. X!             /* resetting the o_id's after getlev has carefully
  949. X!              * created proper new ones via restobjchn is a Bad
  950. X!              * Idea */
  951. X!             otmp->o_id = 0;
  952. X!             if(objects[otmp->otyp].oc_uses_known) otmp->known = 0;
  953. X!             otmp->dknown = otmp->bknown = 0;
  954. X!             otmp->invlet = 0;
  955. X  #ifdef TUTTI_FRUTTI
  956. X!             if(otmp->otyp == SLIME_MOLD) goodfruit(otmp->spe);
  957. X  #endif
  958. X  #ifdef MAIL
  959. X!             if (otmp->otyp == SCR_MAIL) otmp->spe = 1;
  960. X  #endif
  961. X  #ifdef POLYSELF
  962. X!             if (otmp->otyp == EGG) otmp->spe = 0;
  963. X  #endif
  964. X!             if(otmp->otyp == AMULET_OF_YENDOR && !otmp->spe) {
  965. X!                 otmp->spe = -1;
  966. X!                 /* no longer the actual amulet */
  967. X!                 curse(otmp);
  968. X!             }
  969. X          }
  970. X      }            
  971. X  }
  972. X***************
  973. X*** 218,224 ****
  974. X      mtmp->msleep = 1;
  975. X      if(u.ugold) mkgold(u.ugold, u.ux, u.uy);
  976. X      for(mtmp = fmon; mtmp; mtmp = mtmp->nmon){
  977. X!         resetobjs(mtmp->minvent);
  978. X          mtmp->m_id = 0;
  979. X          mtmp->mlstmv = 0L;
  980. X          if(mtmp->mtame) mtmp->mtame = mtmp->mpeaceful = 0;
  981. X--- 224,230 ----
  982. X      mtmp->msleep = 1;
  983. X      if(u.ugold) mkgold(u.ugold, u.ux, u.uy);
  984. X      for(mtmp = fmon; mtmp; mtmp = mtmp->nmon){
  985. X!         resetobjs(mtmp->minvent,FALSE);
  986. X          mtmp->m_id = 0;
  987. X          mtmp->mlstmv = 0L;
  988. X          if(mtmp->mtame) mtmp->mtame = mtmp->mpeaceful = 0;
  989. X***************
  990. X*** 227,234 ****
  991. X      for(ttmp = ftrap; ttmp; ttmp = ttmp->ntrap)
  992. X          ttmp->tseen = 0;
  993. X  
  994. X!     resetobjs(fobj);
  995. X!     resetobjs(fcobj);   /* let's (not) forget about these - KCD, 10/21/89 */
  996. X  
  997. X      for(x=0; x<COLNO; x++) for(y=0; y<ROWNO; y++)
  998. X          levl[x][y].seen = levl[x][y].new = levl[x][y].scrsym = 0;
  999. X--- 233,241 ----
  1000. X      for(ttmp = ftrap; ttmp; ttmp = ttmp->ntrap)
  1001. X          ttmp->tseen = 0;
  1002. X  
  1003. X!     resetobjs(fobj,FALSE);
  1004. X!     /* let's (not) forget about these - KCD, 10/21/89 */
  1005. X!     resetobjs(fcobj,FALSE);
  1006. X  
  1007. X      for(x=0; x<COLNO; x++) for(y=0; y<ROWNO; y++)
  1008. X          levl[x][y].seen = levl[x][y].new = levl[x][y].scrsym = 0;
  1009. X***************
  1010. X*** 246,252 ****
  1011. X          
  1012. X          t = (term_info *)GetWRefCon(HackWindow);
  1013. X          (void)GetVol(&fileName,&oldvolume);
  1014. X!         (void)SetVol(0L, t->system.sysVRefNum);
  1015. X          fileName[0] = (uchar)strlen(bones);
  1016. X          Strcpy((char *)&fileName[1],bones);
  1017. X          
  1018. X--- 253,259 ----
  1019. X          
  1020. X          t = (term_info *)GetWRefCon(HackWindow);
  1021. X          (void)GetVol(&fileName,&oldvolume);
  1022. X!         (void)SetVol(0L, t->recordVRefNum);
  1023. X          fileName[0] = (uchar)strlen(bones);
  1024. X          Strcpy((char *)&fileName[1],bones);
  1025. X          
  1026. X***************
  1027. X*** 300,305 ****
  1028. X--- 307,332 ----
  1029. X      bflush(fd);
  1030. X  #endif
  1031. X      (void) close(fd);
  1032. X+ #ifdef MACOS
  1033. X+     {
  1034. X+         FInfo    fndrInfo;
  1035. X+         Str255    name;
  1036. X+         term_info    *t;
  1037. X+         short    oldVol, error;
  1038. X+         
  1039. X+         t = (term_info *)GetWRefCon(HackWindow);
  1040. X+         GetVol(name, &oldVol);
  1041. X+         SetVol(0L, t->recordVRefNum);  
  1042. X+         Strcpy((char *)name, bones);
  1043. X+         CtoPstr((char *)name);
  1044. X+         error = GetFInfo(name, (short)0, &fndrInfo);
  1045. X+         fndrInfo.fdCreator = CREATOR;
  1046. X+         fndrInfo.fdType = BONES_TYPE;
  1047. X+         if (error == noErr)
  1048. X+             SetFInfo(name, (short)0, &fndrInfo);
  1049. X+         SetVol(0L, oldVol);
  1050. X+     }
  1051. X+ #endif
  1052. X  #ifdef COMPRESS
  1053. X      compress_bones();
  1054. X  #endif
  1055. X***************
  1056. X*** 309,315 ****
  1057. X  getbones() {
  1058. X      register int fd;
  1059. X      register int ok;
  1060. X! 
  1061. X  #ifdef EXPLORE_MODE
  1062. X      if(discover)        /* save bones files for real games */
  1063. X          return(0);
  1064. X--- 336,349 ----
  1065. X  getbones() {
  1066. X      register int fd;
  1067. X      register int ok;
  1068. X! #ifdef MACOS
  1069. X!     Str255    name;
  1070. X!     short    oldVol;
  1071. X!     term_info *t;
  1072. X!     extern WindowPtr    HackWindow;
  1073. X!     
  1074. X!     t = (term_info *)GetWRefCon(HackWindow);
  1075. X! #endif
  1076. X  #ifdef EXPLORE_MODE
  1077. X      if(discover)        /* save bones files for real games */
  1078. X          return(0);
  1079. X***************
  1080. X*** 322,327 ****
  1081. X--- 356,365 ----
  1082. X          ) return(0);
  1083. X      if(no_bones_level(dlevel)) return(0);
  1084. X      name_file(bones, dlevel);
  1085. X+ #ifdef MACOS
  1086. X+     GetVol(name, &oldVol);
  1087. X+     SetVol(0L, t->recordVRefNum);
  1088. X+ #endif
  1089. X  #ifdef COMPRESS
  1090. X      if((fd = open(bones, OMASK)) >= 0) goto gotbones;
  1091. X      Strcpy(proxy, bones);
  1092. X***************
  1093. X*** 339,345 ****
  1094. X          (void) system(cmd);
  1095. X      }
  1096. X  #endif
  1097. X!     if((fd = open(bones, OMASK)) < 0) return(0);
  1098. X  #ifdef COMPRESS
  1099. X  gotbones:
  1100. X  #endif
  1101. X--- 377,391 ----
  1102. X          (void) system(cmd);
  1103. X      }
  1104. X  #endif
  1105. X!     if((fd = open(bones, OMASK)) < 0) {
  1106. X! #ifdef MACOS
  1107. X!         SetVol(0L, oldVol);
  1108. X! #endif
  1109. X!         return(0);
  1110. X!     }
  1111. X! #ifdef MACOS
  1112. X!     SetVol(0L, oldVol);
  1113. X! #endif
  1114. X  #ifdef COMPRESS
  1115. X  gotbones:
  1116. X  #endif
  1117. X***************
  1118. X*** 368,376 ****
  1119. X          register struct monst *mtmp;
  1120. X  
  1121. X          for(mtmp = fmon; mtmp; mtmp = mtmp->nmon)
  1122. X!             resetobjs(mtmp->minvent);
  1123. X!         resetobjs(fobj);
  1124. X!         resetobjs(fcobj);
  1125. X      }
  1126. X  #endif
  1127. X  #ifdef WIZARD
  1128. X--- 414,422 ----
  1129. X          register struct monst *mtmp;
  1130. X  
  1131. X          for(mtmp = fmon; mtmp; mtmp = mtmp->nmon)
  1132. X!             resetobjs(mtmp->minvent,TRUE);
  1133. X!         resetobjs(fobj,TRUE);
  1134. X!         resetobjs(fcobj,TRUE);
  1135. X      }
  1136. X  #endif
  1137. X  #ifdef WIZARD
  1138. X***************
  1139. X*** 384,393 ****
  1140. X--- 430,449 ----
  1141. X          }
  1142. X      }
  1143. X  #endif
  1144. X+ #ifdef MACOS
  1145. X+     GetVol(name, &oldVol);
  1146. X+     SetVol(0L, t->recordVRefNum);
  1147. X+ #endif
  1148. X      if(unlink(bones) < 0){
  1149. X          pline("Cannot unlink %s.", bones);
  1150. X+ #ifdef MACOS
  1151. X+         SetVol(0L, oldVol);
  1152. X+ #endif
  1153. X          return(0);
  1154. X      }
  1155. X+ #ifdef MACOS
  1156. X+     SetVol(0L, oldVol);
  1157. X+ #endif
  1158. X      return(ok);
  1159. X  }
  1160. X  
  1161. X*** src/Old/cmd.c    Sun Jun  3 12:50:45 1990
  1162. X--- src/cmd.c    Thu May 31 22:10:37 1990
  1163. X***************
  1164. X*** 83,115 ****
  1165. X  
  1166. X  #endif /* OVL1 */
  1167. X  
  1168. X! #ifndef OVERLAY
  1169. X! static int NDECL(timed_occupation);
  1170. X! static int NDECL(doextcmd);
  1171. X  # ifdef POLYSELF
  1172. X! static int NDECL(domonability);
  1173. X  # endif
  1174. X  # ifdef WIZARD
  1175. X! static int NDECL(wiz_wish);
  1176. X! static int NDECL(wiz_identify);
  1177. X! static int NDECL(wiz_map);
  1178. X! static int NDECL(wiz_genesis);
  1179. X! static int NDECL(wiz_where);
  1180. X! static int NDECL(wiz_detect);
  1181. X! static int NDECL(wiz_level_tele);
  1182. X  # endif
  1183. X  # ifdef EXPLORE_MODE
  1184. X! static int NDECL(enter_explore_mode);
  1185. X  # endif
  1186. X  # if defined(WIZARD) || defined(EXPLORE_MODE)
  1187. X! static int NDECL(wiz_attributes);
  1188. X  # endif
  1189. X- #endif /* OVERLAY */
  1190. X  
  1191. X- #ifdef REDO
  1192. X- static char NDECL(popch);
  1193. X- #endif
  1194. X- 
  1195. X  #ifdef STUPID_CPP
  1196. X  static char FDECL(unctrl, (CHAR_P));
  1197. X  static char FDECL(unmeta, (CHAR_P));
  1198. X--- 83,109 ----
  1199. X  
  1200. X  #endif /* OVL1 */
  1201. X  
  1202. X! STATIC_PTR int NDECL(timed_occupation);
  1203. X! STATIC_PTR int NDECL(doextcmd);
  1204. X  # ifdef POLYSELF
  1205. X! STATIC_PTR int NDECL(domonability);
  1206. X  # endif
  1207. X  # ifdef WIZARD
  1208. X! STATIC_PTR int NDECL(wiz_wish);
  1209. X! STATIC_PTR int NDECL(wiz_identify);
  1210. X! STATIC_PTR int NDECL(wiz_map);
  1211. X! STATIC_PTR int NDECL(wiz_genesis);
  1212. X! STATIC_PTR int NDECL(wiz_where);
  1213. X! STATIC_PTR int NDECL(wiz_detect);
  1214. X! STATIC_PTR int NDECL(wiz_level_tele);
  1215. X  # endif
  1216. X  # ifdef EXPLORE_MODE
  1217. X! STATIC_PTR int NDECL(enter_explore_mode);
  1218. X  # endif
  1219. X  # if defined(WIZARD) || defined(EXPLORE_MODE)
  1220. X! STATIC_PTR int NDECL(wiz_attributes);
  1221. X  # endif
  1222. X  
  1223. X  #ifdef STUPID_CPP
  1224. X  static char FDECL(unctrl, (CHAR_P));
  1225. X  static char FDECL(unmeta, (CHAR_P));
  1226. X***************
  1227. X*** 118,127 ****
  1228. X  #ifdef OVL1
  1229. X  
  1230. X  /* Count down by decrementing multi */
  1231. X! #ifndef OVERLAY
  1232. X! static 
  1233. X! #endif
  1234. X! int
  1235. X  timed_occupation() {
  1236. X      (*timed_occ_fn)();
  1237. X      if (multi > 0)
  1238. X--- 112,118 ----
  1239. X  #ifdef OVL1
  1240. X  
  1241. X  /* Count down by decrementing multi */
  1242. X! STATIC_PTR int
  1243. X  timed_occupation() {
  1244. X      (*timed_occ_fn)();
  1245. X      if (multi > 0)
  1246. X***************
  1247. X*** 169,174 ****
  1248. X--- 160,168 ----
  1249. X  }
  1250. X  
  1251. X  #ifdef REDO
  1252. X+ 
  1253. X+ static char NDECL(popch);
  1254. X+ 
  1255. X  /* Provide a means to redo the last command.  The flag `in_doagain' is set
  1256. X   * to true while redoing the command.  This flag is tested in commands that
  1257. X   * require additional input (like `throw' which requires a thing and a
  1258. X***************
  1259. X*** 177,183 ****
  1260. X   */
  1261. X  #define BSIZE 20
  1262. X  static char pushq[BSIZE], saveq[BSIZE];
  1263. X! static int phead, ptail, shead, stail;
  1264. X  
  1265. X  static char
  1266. X  popch() {
  1267. X--- 171,177 ----
  1268. X   */
  1269. X  #define BSIZE 20
  1270. X  static char pushq[BSIZE], saveq[BSIZE];
  1271. X! static int NEARDATA phead, NEARDATA ptail, NEARDATA shead, NEARDATA stail;
  1272. X  
  1273. X  static char
  1274. X  popch() {
  1275. X***************
  1276. X*** 232,241 ****
  1277. X  #endif /* OVL1 */
  1278. X  #ifdef OVLB
  1279. X  
  1280. X! #ifndef OVERLAY
  1281. X! static 
  1282. X! #endif
  1283. X! int
  1284. X  doextcmd()    /* here after # - now read a full-word command */
  1285. X  {
  1286. X      char buf[BUFSZ];
  1287. X--- 226,232 ----
  1288. X  #endif /* OVL1 */
  1289. X  #ifdef OVLB
  1290. X  
  1291. X! STATIC_PTR int
  1292. X  doextcmd()    /* here after # - now read a full-word command */
  1293. X  {
  1294. X      char buf[BUFSZ];
  1295. X***************
  1296. X*** 290,299 ****
  1297. X  }
  1298. X  
  1299. X  #ifdef POLYSELF
  1300. X! #ifndef OVERLAY
  1301. X! static 
  1302. X! #endif
  1303. X! int
  1304. X  domonability()
  1305. X  {
  1306. X      if (can_breathe(uasmon)) return dobreathe();
  1307. X--- 281,287 ----
  1308. X  }
  1309. X  
  1310. X  #ifdef POLYSELF
  1311. X! STATIC_PTR int
  1312. X  domonability()
  1313. X  {
  1314. X      if (can_breathe(uasmon)) return dobreathe();
  1315. X***************
  1316. X*** 312,321 ****
  1317. X  #endif
  1318. X  
  1319. X  #ifdef EXPLORE_MODE
  1320. X! #ifndef OVERLAY
  1321. X! static 
  1322. X! #endif
  1323. X! int
  1324. X  enter_explore_mode()
  1325. X  {
  1326. X      if(!discover && !wizard) {
  1327. X--- 300,306 ----
  1328. X  #endif
  1329. X  
  1330. X  #ifdef EXPLORE_MODE
  1331. X! STATIC_PTR int
  1332. X  enter_explore_mode()
  1333. X  {
  1334. X      if(!discover && !wizard) {
  1335. X***************
  1336. X*** 342,351 ****
  1337. X  #endif
  1338. X  
  1339. X  #ifdef WIZARD
  1340. X! #ifndef OVERLAY
  1341. X! static 
  1342. X! #endif
  1343. X! int
  1344. X  wiz_wish()    /* Unlimited wishes for wizard mode by Paul Polderman */
  1345. X  {
  1346. X      if (wizard)    makewish();
  1347. X--- 327,333 ----
  1348. X  #endif
  1349. X  
  1350. X  #ifdef WIZARD
  1351. X! STATIC_PTR int
  1352. X  wiz_wish()    /* Unlimited wishes for wizard mode by Paul Polderman */
  1353. X  {
  1354. X      if (wizard)    makewish();
  1355. X***************
  1356. X*** 353,362 ****
  1357. X      return 0;
  1358. X  }
  1359. X  
  1360. X! #ifndef OVERLAY
  1361. X! static 
  1362. X! #endif
  1363. X! int
  1364. X  wiz_identify()
  1365. X  {
  1366. X      struct obj *obj;
  1367. X--- 335,341 ----
  1368. X      return 0;
  1369. X  }
  1370. X  
  1371. X! STATIC_PTR int
  1372. X  wiz_identify()
  1373. X  {
  1374. X      struct obj *obj;
  1375. X***************
  1376. X*** 372,381 ****
  1377. X      return 0;
  1378. X  }
  1379. X  
  1380. X! #ifndef OVERLAY
  1381. X! static 
  1382. X! #endif
  1383. X! int
  1384. X  wiz_map()
  1385. X  {
  1386. X      if (wizard)    do_mapping();
  1387. X--- 351,357 ----
  1388. X      return 0;
  1389. X  }
  1390. X  
  1391. X! STATIC_PTR int
  1392. X  wiz_map()
  1393. X  {
  1394. X      if (wizard)    do_mapping();
  1395. X***************
  1396. X*** 383,392 ****
  1397. X      return 0;
  1398. X  }
  1399. X  
  1400. X! #ifndef OVERLAY
  1401. X! static 
  1402. X! #endif
  1403. X! int
  1404. X  wiz_genesis()
  1405. X  {
  1406. X      if (wizard)    (void) create_particular();
  1407. X--- 359,365 ----
  1408. X      return 0;
  1409. X  }
  1410. X  
  1411. X! STATIC_PTR int
  1412. X  wiz_genesis()
  1413. X  {
  1414. X      if (wizard)    (void) create_particular();
  1415. X***************
  1416. X*** 394,403 ****
  1417. X      return 0;
  1418. X  }
  1419. X  
  1420. X! #ifndef OVERLAY
  1421. X! static 
  1422. X! #endif
  1423. X! int
  1424. X  wiz_where()
  1425. X  {
  1426. X      if (wizard) {
  1427. X--- 367,373 ----
  1428. X      return 0;
  1429. X  }
  1430. X  
  1431. X! STATIC_PTR int
  1432. X  wiz_where()
  1433. X  {
  1434. X      if (wizard) {
  1435. X***************
  1436. X*** 422,431 ****
  1437. X      return 0;
  1438. X  }
  1439. X  
  1440. X! #ifndef OVERLAY
  1441. X! static 
  1442. X! #endif
  1443. X! int
  1444. X  wiz_detect()
  1445. X  {
  1446. X      if(wizard)  (void) findit();
  1447. X--- 392,398 ----
  1448. X      return 0;
  1449. X  }
  1450. X  
  1451. X! STATIC_PTR int
  1452. X  wiz_detect()
  1453. X  {
  1454. X      if(wizard)  (void) findit();
  1455. X***************
  1456. X*** 433,442 ****
  1457. X      return 0;
  1458. X  }
  1459. X  
  1460. X! #ifndef OVERLAY
  1461. X! static 
  1462. X! #endif
  1463. X! int
  1464. X  wiz_level_tele()
  1465. X  {
  1466. X      if (wizard)    level_tele();
  1467. X--- 400,406 ----
  1468. X      return 0;
  1469. X  }
  1470. X  
  1471. X! STATIC_PTR int
  1472. X  wiz_level_tele()
  1473. X  {
  1474. X      if (wizard)    level_tele();
  1475. X***************
  1476. X*** 484,491 ****
  1477. X--- 448,457 ----
  1478. X      if (Protection) cornline(1, "You are protected.");
  1479. X      if (Warning) cornline(1, "You are warned.");
  1480. X      if (Teleport_control) cornline(1, "You have teleport control.");
  1481. X+ #ifdef POLYSELF
  1482. X      if (Polymorph) cornline(1, "You are polymorphing.");
  1483. X      if (Polymorph_control) cornline(1, "You have polymorph control.");
  1484. X+ #endif
  1485. X      if (Telepat) cornline(1, "You are telepathic.");
  1486. X      if (Fast) cornline(1, "You are fast.");
  1487. X      /* if (Stunned) cornline(1, "You are stunned."); */
  1488. X***************
  1489. X*** 535,544 ****
  1490. X  }
  1491. X  
  1492. X  #if defined(WIZARD) || defined(EXPLORE_MODE)
  1493. X! #ifndef OVERLAY
  1494. X! static 
  1495. X! #endif
  1496. X! int
  1497. X  wiz_attributes()
  1498. X  {
  1499. X      if (wizard || discover)
  1500. X--- 501,507 ----
  1501. X  }
  1502. X  
  1503. X  #if defined(WIZARD) || defined(EXPLORE_MODE)
  1504. X! STATIC_PTR int
  1505. X  wiz_attributes()
  1506. X  {
  1507. X      if (wizard || discover)
  1508. X***************
  1509. X*** 860,869 ****
  1510. X  }
  1511. X  
  1512. X  /* 'rogue'-like direction commands */
  1513. X! const char sdir[] = "hykulnjb><";
  1514. X! const char ndir[] = "47896321><";
  1515. X! const schar xdir[10] = { -1,-1, 0, 1, 1, 1, 0,-1, 0, 0 };
  1516. X! const schar ydir[10] = {  0,-1,-1,-1, 0, 1, 1, 1, 0, 0 };
  1517. X  const schar zdir[10] = {  0, 0, 0, 0, 0, 0, 0, 0, 1,-1 };
  1518. X  
  1519. X  #ifdef WALKIES
  1520. X--- 823,832 ----
  1521. X  }
  1522. X  
  1523. X  /* 'rogue'-like direction commands */
  1524. X! const char NEARDATA sdir[] = "hykulnjb><";
  1525. X! const char NEARDATA ndir[] = "47896321><";
  1526. X! const schar NEARDATA xdir[10] = { -1,-1, 0, 1, 1, 1, 0,-1, 0, 0 };
  1527. X! const schar NEARDATA ydir[10] = {  0,-1,-1,-1, 0, 1, 1, 1, 0, 0 };
  1528. X  const schar zdir[10] = {  0, 0, 0, 0, 0, 0, 0, 0, 1,-1 };
  1529. X  
  1530. X  #ifdef WALKIES
  1531. X***************
  1532. X*** 911,919 ****
  1533. X      return !u.dz;
  1534. X  }
  1535. X  
  1536. X- #endif /* OVL1 */
  1537. X- #ifdef OVLB
  1538. X- 
  1539. X  int
  1540. X  getdir(s)
  1541. X  boolean s;
  1542. X--- 874,879 ----
  1543. X***************
  1544. X*** 938,943 ****
  1545. X--- 898,906 ----
  1546. X      if(!u.dz && (Stunned || (Confusion && !rn2(5)))) confdir();
  1547. X      return 1;
  1548. X  }
  1549. X+ 
  1550. X+ #endif /* OVL1 */
  1551. X+ #ifdef OVLB
  1552. X  
  1553. X  void
  1554. X  confdir()
  1555. X*** src/Old/dbridge.c    Sun Jun  3 12:51:22 1990
  1556. X--- src/dbridge.c    Thu May 31 22:10:40 1990
  1557. X***************
  1558. X*** 13,18 ****
  1559. X--- 13,19 ----
  1560. X  #include "hack.h"
  1561. X  
  1562. X  #ifdef STRONGHOLD
  1563. X+ # ifdef OVLB
  1564. X  static void FDECL(redosym, (int, int));
  1565. X  static void FDECL(get_wall_for_db, (int *, int *));
  1566. X  static struct entity *FDECL(e_at, (int, int));
  1567. X***************
  1568. X*** 28,34 ****
  1569. X  static boolean FDECL(e_missed, (struct entity *, BOOLEAN_P));
  1570. X  static boolean FDECL(e_jumps, (struct entity *));
  1571. X  static void FDECL(do_entity, (struct entity *));
  1572. X! #endif
  1573. X  
  1574. X  #ifdef OVL0
  1575. X  
  1576. X--- 29,36 ----
  1577. X  static boolean FDECL(e_missed, (struct entity *, BOOLEAN_P));
  1578. X  static boolean FDECL(e_jumps, (struct entity *));
  1579. X  static void FDECL(do_entity, (struct entity *));
  1580. X! # endif /* OVLB */
  1581. X! #endif /* STRONGHOLD */
  1582. X  
  1583. X  #ifdef OVL0
  1584. X  
  1585. X***************
  1586. X*** 63,68 ****
  1587. X--- 65,73 ----
  1588. X      crm->seen = oldseen;
  1589. X  }
  1590. X  
  1591. X+ #endif /* OVL1 */
  1592. X+ #ifdef OVLB
  1593. X+ 
  1594. X  static void
  1595. X  redosym(x,y)
  1596. X  int x,y;
  1597. X***************
  1598. X*** 76,81 ****
  1599. X--- 81,89 ----
  1600. X      }
  1601. X  }
  1602. X  
  1603. X+ #endif /* OVLB */
  1604. X+ #ifdef OVL1
  1605. X+ 
  1606. X  /* 
  1607. X   * We want to know whether a wall (or a door) is the portcullis (passageway)
  1608. X   * of an eventual drawbridge.
  1609. X***************
  1610. X*** 113,121 ****
  1611. X      return (-1);
  1612. X  }
  1613. X  
  1614. X- #endif /* OVL1 */
  1615. X- #ifdef OVL1
  1616. X- 
  1617. X  /*
  1618. X   * Use is_db_wall where you want to verify that a
  1619. X   * drawbridge "wall" is UP in the location x, y
  1620. X--- 121,126 ----
  1621. X***************
  1622. X*** 129,136 ****
  1623. X          levl[x][y].diggable & W_GATEWAY);
  1624. X  }
  1625. X  
  1626. X- #endif /* OVL1 */
  1627. X- #ifdef OVLB
  1628. X  
  1629. X  /*
  1630. X   * Return true with x,y pointing to the drawbridge if x,y initially indicate
  1631. X--- 134,139 ----
  1632. X***************
  1633. X*** 157,162 ****
  1634. X--- 160,168 ----
  1635. X      return FALSE;
  1636. X  }
  1637. X  
  1638. X+ #endif /* OVL1 */
  1639. X+ #ifdef OVLB
  1640. X+ 
  1641. X  /* 
  1642. X   * Find the drawbridge wall associated with a drawbridge.
  1643. X   */
  1644. X***************
  1645. X*** 234,240 ****
  1646. X  
  1647. X  #define ENTITIES 2
  1648. X  
  1649. X! static struct entity occupants[ENTITIES];
  1650. X  
  1651. X  static
  1652. X  struct entity *
  1653. X--- 240,246 ----
  1654. X  
  1655. X  #define ENTITIES 2
  1656. X  
  1657. X! static struct entity NEARDATA occupants[ENTITIES];
  1658. X  
  1659. X  static
  1660. X  struct entity *
  1661. X***************
  1662. X*** 414,425 ****
  1663. X          else {
  1664. X              coord xy;
  1665. X  
  1666. X              done(how);
  1667. X              /* So, you didn't die */
  1668. X              if (!e_survives_at(etmp, etmp->ex, etmp->ey)) {
  1669. X                  pline("A %s force teleports you away...",
  1670. X                              Hallucination ? "normal" : "strange");
  1671. X!                 enexto(&xy, etmp->ex, etmp->ey, etmp->edata);
  1672. X                  teleds(xy.x, xy.y);
  1673. X              }
  1674. X          }
  1675. X--- 420,434 ----
  1676. X          else {
  1677. X              coord xy;
  1678. X  
  1679. X+             killer_format = KILLED_BY_AN;
  1680. X+             killer = "falling drawbridge";
  1681. X              done(how);
  1682. X              /* So, you didn't die */
  1683. X              if (!e_survives_at(etmp, etmp->ex, etmp->ey)) {
  1684. X                  pline("A %s force teleports you away...",
  1685. X                              Hallucination ? "normal" : "strange");
  1686. X!                 (void) enexto(&xy, etmp->ex, etmp->ey,
  1687. X!                                 etmp->edata);
  1688. X                  teleds(xy.x, xy.y);
  1689. X              }
  1690. X          }
  1691. X***************
  1692. X*** 876,883 ****
  1693. X      lev2->typ = DOOR;
  1694. X      lev2->doormask = D_NODOOR;
  1695. X      set_entity(x, y, etmp1);
  1696. X-     e_inview = e_boolean(etmp1, canseemon);
  1697. X      if (etmp1->edata) {
  1698. X          if (e_missed(etmp1, TRUE)) {
  1699. X  #ifdef D_DEBUG
  1700. X              pline("%s spared!", E_phrase(etmp1, "are"));
  1701. X--- 885,892 ----
  1702. X      lev2->typ = DOOR;
  1703. X      lev2->doormask = D_NODOOR;
  1704. X      set_entity(x, y, etmp1);
  1705. X      if (etmp1->edata) {
  1706. X+         e_inview = e_boolean(etmp1, canseemon);
  1707. X          if (e_missed(etmp1, TRUE)) {
  1708. X  #ifdef D_DEBUG
  1709. X              pline("%s spared!", E_phrase(etmp1, "are"));
  1710. X*** src/Old/decl.c    Sun Jun  3 12:51:53 1990
  1711. X--- src/decl.c    Mon Mar 12 18:49:33 1990
  1712. X***************
  1713. X*** 4,18 ****
  1714. X  
  1715. X  #include    "hack.h"
  1716. X  
  1717. X! int multi = 0;
  1718. X! int warnlevel = 0;        /* used by movemon and dochugw */
  1719. X! int nroom = 0;
  1720. X! int occtime = 0;
  1721. X  
  1722. X  int x_maze_max, y_maze_max;    /* initialized in main, used in mkmaze.c */
  1723. X  
  1724. X  #ifdef REDO
  1725. X! int in_doagain = 0;
  1726. X  #endif
  1727. X  
  1728. X  /*
  1729. X--- 4,18 ----
  1730. X  
  1731. X  #include    "hack.h"
  1732. X  
  1733. X! int NEARDATA multi = 0;
  1734. X! int NEARDATA warnlevel = 0;        /* used by movemon and dochugw */
  1735. X! int NEARDATA nroom = 0;
  1736. X! int NEARDATA occtime = 0;
  1737. X  
  1738. X  int x_maze_max, y_maze_max;    /* initialized in main, used in mkmaze.c */
  1739. X  
  1740. X  #ifdef REDO
  1741. X! int NEARDATA in_doagain = 0;
  1742. X  #endif
  1743. X  
  1744. X  /*
  1745. X***************
  1746. X*** 21,63 ****
  1747. X   */
  1748. X  
  1749. X   int
  1750. X!     medusa_level = 0,    /* level that the medusa lives on */
  1751. X!     bigroom_level = 0,    /* level consisting of a single big room */
  1752. X  #ifdef REINCARNATION
  1753. X!     rogue_level = 0,    /* level near which rogue level gen'd */
  1754. X  #endif
  1755. X  #ifdef ORACLE
  1756. X!     oracle_level = 0,    /* level near which Oracle gen'd */
  1757. X  #endif
  1758. X  #ifdef STRONGHOLD
  1759. X!     stronghold_level = 3,    /* level the castle is on */
  1760. X      /* Not 0, otherwise they start the game in Hell and burn immediately */
  1761. X!     tower_level = 0,    /* level of the top of Vlad's 3-level tower */
  1762. X  #endif
  1763. X!     wiz_level = 0;        /* level that the wiz lives on */
  1764. X! boolean is_maze_lev = FALSE;    /* if this is a maze level */
  1765. X  
  1766. X! int smeq[MAXNROFROOMS+1] = DUMMY;
  1767. X! int doorindex = 0;
  1768. X! 
  1769. X! char *save_cm = 0;
  1770. X! int killer_format = 0;
  1771. X! const char *killer = 0;
  1772. X! const char *nomovemsg = 0;
  1773. X! const char nul[40] = DUMMY;        /* contains zeros */
  1774. X! char plname[PL_NSIZ] = DUMMY;        /* player name */
  1775. X! char pl_character[PL_CSIZ] = DUMMY;
  1776. X  
  1777. X  #ifdef TUTTI_FRUTTI
  1778. X! char pl_fruit[PL_FSIZ] = DUMMY;
  1779. X! int current_fruit = 0;
  1780. X! struct fruit *ffruit = 0;
  1781. X  #endif
  1782. X  
  1783. X  #ifdef STRONGHOLD
  1784. X! char tune[6] = DUMMY;
  1785. X  #  ifdef MUSIC
  1786. X! schar music_heard = 0;
  1787. X  #  endif
  1788. X  #endif
  1789. X  
  1790. X--- 21,63 ----
  1791. X   */
  1792. X  
  1793. X   int
  1794. X!     NEARDATA medusa_level = 0,    /* level that the medusa lives on */
  1795. X!     NEARDATA bigroom_level = 0,    /* level consisting of a single big room */
  1796. X  #ifdef REINCARNATION
  1797. X!     NEARDATA rogue_level = 0,    /* level near which rogue level gen'd */
  1798. X  #endif
  1799. X  #ifdef ORACLE
  1800. X!     NEARDATA oracle_level = 0,    /* level near which Oracle gen'd */
  1801. X  #endif
  1802. X  #ifdef STRONGHOLD
  1803. X!     NEARDATA stronghold_level = 3,    /* level the castle is on */
  1804. X      /* Not 0, otherwise they start the game in Hell and burn immediately */
  1805. X!     NEARDATA tower_level = 0,    /* level of the top of Vlad's 3-level tower */
  1806. X  #endif
  1807. X!     NEARDATA wiz_level = 0;        /* level that the wiz lives on */
  1808. X! boolean NEARDATA is_maze_lev = FALSE;    /* if this is a maze level */
  1809. X  
  1810. X! int NEARDATA smeq[MAXNROFROOMS+1] = DUMMY;
  1811. X! int NEARDATA doorindex = 0;
  1812. X! 
  1813. X! char NEARDATA *save_cm = 0;
  1814. X! int NEARDATA killer_format = 0;
  1815. X! const char NEARDATA *killer = 0;
  1816. X! const char NEARDATA *nomovemsg = 0;
  1817. X! const char NEARDATA nul[40] = DUMMY;        /* contains zeros */
  1818. X! char NEARDATA plname[PL_NSIZ] = DUMMY;        /* player name */
  1819. X! char NEARDATA pl_character[PL_CSIZ] = DUMMY;
  1820. X  
  1821. X  #ifdef TUTTI_FRUTTI
  1822. X! char NEARDATA pl_fruit[PL_FSIZ] = DUMMY;
  1823. X! int NEARDATA current_fruit = 0;
  1824. X! struct fruit NEARDATA *ffruit = 0;
  1825. X  #endif
  1826. X  
  1827. X  #ifdef STRONGHOLD
  1828. X! char NEARDATA tune[6] = DUMMY;
  1829. X  #  ifdef MUSIC
  1830. X! schar NEARDATA music_heard = 0;
  1831. X  #  endif
  1832. X  #endif
  1833. X  
  1834. X***************
  1835. X*** 64,77 ****
  1836. X  #ifdef SMALLDATA
  1837. X  const char *occtxt = 0;
  1838. X  #else
  1839. X! const char *occtxt = DUMMY;
  1840. X  #endif
  1841. X! const char quitchars[] = " \r\n\033";
  1842. X! const char vowels[] = "aeiouAEIOU";
  1843. X! const char ynchars[] = "yn";
  1844. X! const char ynqchars[] = "ynq";
  1845. X! const char ynaqchars[] = "ynaq";
  1846. X! const char nyaqchars[] = "nyaq";
  1847. X  
  1848. X  #ifdef SMALLDATA
  1849. X  char *HI = 0, *HE = 0, *AS = 0, *AE = 0, *CD = 0;
  1850. X--- 64,77 ----
  1851. X  #ifdef SMALLDATA
  1852. X  const char *occtxt = 0;
  1853. X  #else
  1854. X! const char NEARDATA *occtxt = DUMMY;
  1855. X  #endif
  1856. X! const char NEARDATA quitchars[] = " \r\n\033";
  1857. X! const char NEARDATA vowels[] = "aeiouAEIOU";
  1858. X! const char NEARDATA ynchars[] = "yn";
  1859. X! const char NEARDATA ynqchars[] = "ynq";
  1860. X! const char NEARDATA ynaqchars[] = "ynaq";
  1861. X! const char NEARDATA nyaqchars[] = "nyaq";
  1862. X  
  1863. X  #ifdef SMALLDATA
  1864. X  char *HI = 0, *HE = 0, *AS = 0, *AE = 0, *CD = 0;
  1865. X***************
  1866. X*** 83,90 ****
  1867. X  int CO = 0, LI = 0;    /* set up in termcap.c: usually COLNO and ROWNO+3 */
  1868. X  
  1869. X  #ifdef CLIPPING
  1870. X! boolean clipping;    /* clipping on? */
  1871. X! int clipx, clipy, clipxmax, clipymax;
  1872. X  #endif
  1873. X  
  1874. X  #ifdef TEXTCOLOR
  1875. X--- 83,90 ----
  1876. X  int CO = 0, LI = 0;    /* set up in termcap.c: usually COLNO and ROWNO+3 */
  1877. X  
  1878. X  #ifdef CLIPPING
  1879. X! boolean clipping = FALSE;    /* clipping on? */
  1880. X! int clipx = 0, clipy = 0, clipxmax = 0, clipymax = 0;
  1881. X  #endif
  1882. X  
  1883. X  #ifdef TEXTCOLOR
  1884. X***************
  1885. X*** 91,97 ****
  1886. X  # ifdef TOS
  1887. X  const char *hilites[MAXCOLORS];    /* terminal escapes for the various colors */
  1888. X  # else
  1889. X! char *hilites[MAXCOLORS];    /* terminal escapes for the various colors */
  1890. X  # endif
  1891. X  #endif
  1892. X  #ifdef MSDOS
  1893. X--- 91,97 ----
  1894. X  # ifdef TOS
  1895. X  const char *hilites[MAXCOLORS];    /* terminal escapes for the various colors */
  1896. X  # else
  1897. X! char NEARDATA *hilites[MAXCOLORS]; /* terminal escapes for the various colors */
  1898. X  # endif
  1899. X  #endif
  1900. X  #ifdef MSDOS
  1901. X***************
  1902. X*** 115,169 ****
  1903. X  # endif
  1904. X  #endif
  1905. X  
  1906. X! int dig_effort = 0;    /* effort expended on current pos */
  1907. X! uchar dig_level = 0;
  1908. X! coord dig_pos = DUMMY;
  1909. X! boolean dig_down = FALSE;
  1910. X  
  1911. X! xchar dlevel = 1;
  1912. X! xchar maxdlevel = 1;
  1913. X! int done_stopprint = 0;
  1914. X! int done_hup = 0;
  1915. X! xchar xupstair = 0, yupstair = 0, xdnstair = 0, ydnstair = 0;
  1916. X  #ifdef STRONGHOLD
  1917. X! xchar xupladder = 0, yupladder = 0, xdnladder = 0, ydnladder = 0;
  1918. X  #endif
  1919. X! xchar curx = 0, cury = 0;
  1920. X! xchar seelx = 0, seehx = 0, seely = 0, seehy = 0; /* corners of lit room */
  1921. X! xchar seelx2 = 0, seehx2 = 0, seely2 = 0, seehy2 = 0; /* corners of lit room */
  1922. X! xchar scrlx = 0, scrhx = 0, scrly = 0, scrhy = 0; /* corners of new scr. area*/
  1923. X! xchar fountsound = 0;
  1924. X! xchar sinksound = 0; /* numbers of other things that make noise */
  1925. X! 
  1926. X! boolean in_mklev = FALSE;
  1927. X! boolean    stoned = FALSE;            /* done to monsters hit by 'c' */
  1928. X! boolean    unweapon = FALSE;
  1929. X! boolean mrg_to_wielded = FALSE; /* weapon picked is merged with wielded one */
  1930. X  
  1931. X  #ifdef KOPS
  1932. X! boolean allow_kops = TRUE;
  1933. X  #endif
  1934. X  
  1935. X! coord bhitpos = DUMMY;
  1936. X! coord doors[DOORMAX] = DUMMY;
  1937. X  
  1938. X! struct mkroom rooms[MAXNROFROOMS+1] = DUMMY;
  1939. X  dlevel_t level;        /* level map */
  1940. X  struct trap *ftrap = 0;
  1941. X  struct gold *fgold = 0;
  1942. X! struct monst youmonst = DUMMY;    /* dummy; used as return value for boomhit */
  1943. X! struct flag flags = DUMMY;
  1944. X! struct you u = DUMMY;
  1945. X  
  1946. X! struct obj *fcobj = 0, *invent = 0, *uwep = 0, *uarm = 0,
  1947. X  #ifdef SHIRT
  1948. X!     *uarmu = 0,        /* under-wear, so to speak */
  1949. X  #endif
  1950. X  #ifdef POLYSELF
  1951. X!     *uskin = 0,        /* dragon armor, if a dragon */
  1952. X  #endif
  1953. X!     *uarmc = 0, *uarmh = 0, *uarms = 0, *uarmg = 0, *uarmf = 0, *uamul = 0,
  1954. X!     *uright = 0, *uleft = 0, *ublindf = 0, *uchain = 0, *uball = 0;
  1955. X  
  1956. X  symbol_array defsyms = {
  1957. X      ' ', /* stone */
  1958. X--- 115,178 ----
  1959. X  # endif
  1960. X  #endif
  1961. X  
  1962. X! int NEARDATA dig_effort = 0;    /* effort expended on current pos */
  1963. X! uchar NEARDATA dig_level = 0;
  1964. X! coord NEARDATA dig_pos = DUMMY;
  1965. X! boolean NEARDATA dig_down = FALSE;
  1966. X  
  1967. X! xchar NEARDATA dlevel = 1;
  1968. X! xchar NEARDATA maxdlevel = 1;
  1969. X! int NEARDATA done_stopprint = 0;
  1970. X! int NEARDATA done_hup = 0;
  1971. X! xchar NEARDATA xupstair = 0, NEARDATA yupstair = 0, 
  1972. X!     NEARDATA xdnstair = 0, NEARDATA ydnstair = 0;
  1973. X  #ifdef STRONGHOLD
  1974. X! xchar NEARDATA xupladder = 0, NEARDATA yupladder = 0,
  1975. X!     NEARDATA xdnladder = 0, NEARDATA ydnladder = 0;
  1976. X  #endif
  1977. X! xchar NEARDATA curx = 0, NEARDATA cury = 0;
  1978. X! xchar NEARDATA seelx = 0, NEARDATA seehx = 0, NEARDATA seely = 0,
  1979. X!     NEARDATA seehy = 0; /* corners of lit room */
  1980. X! xchar NEARDATA seelx2 = 0, NEARDATA seehx2 = 0, NEARDATA seely2 = 0,
  1981. X!     NEARDATA  seehy2 = 0; /* corners of lit room */
  1982. X! xchar NEARDATA scrlx = 0, NEARDATA scrhx = 0, NEARDATA scrly = 0,
  1983. X!     NEARDATA scrhy = 0; /* corners of new scr. area*/
  1984. X! xchar NEARDATA fountsound = 0;
  1985. X! xchar NEARDATA sinksound = 0; /* numbers of other things that make noise */
  1986. X! 
  1987. X! boolean NEARDATA in_mklev = FALSE;
  1988. X! boolean    NEARDATA stoned = FALSE;    /* done to monsters hit by 'c' */
  1989. X! boolean    NEARDATA unweapon = FALSE;
  1990. X! boolean NEARDATA mrg_to_wielded = FALSE;
  1991. X!              /* weapon picked is merged with wielded one */
  1992. X  
  1993. X  #ifdef KOPS
  1994. X! boolean NEARDATA allow_kops = TRUE;
  1995. X  #endif
  1996. X  
  1997. X! coord NEARDATA bhitpos = DUMMY;
  1998. X! coord NEARDATA doors[DOORMAX] = DUMMY;
  1999. X  
  2000. X! struct mkroom NEARDATA rooms[MAXNROFROOMS+1] = DUMMY;
  2001. X  dlevel_t level;        /* level map */
  2002. X  struct trap *ftrap = 0;
  2003. X  struct gold *fgold = 0;
  2004. X! struct monst NEARDATA youmonst = DUMMY;    /* dummy; used as return value for boomhit */
  2005. X! struct flag NEARDATA flags = DUMMY;
  2006. X! struct you NEARDATA u = DUMMY;
  2007. X  
  2008. X! struct obj NEARDATA *fcobj = 0, NEARDATA *invent = 0, NEARDATA *uwep = 0,
  2009. X!     NEARDATA *uarm = 0,
  2010. X  #ifdef SHIRT
  2011. X!     NEARDATA *uarmu = 0,        /* under-wear, so to speak */
  2012. X  #endif
  2013. X  #ifdef POLYSELF
  2014. X!     NEARDATA *uskin = 0,        /* dragon armor, if a dragon */
  2015. X  #endif
  2016. X!     NEARDATA *uarmc = 0, NEARDATA *uarmh = 0, NEARDATA *uarms = 0,
  2017. X!     NEARDATA *uarmg = 0, NEARDATA *uarmf = 0, NEARDATA *uamul = 0,
  2018. X!     NEARDATA *uright = 0, NEARDATA *uleft = 0, NEARDATA *ublindf = 0,
  2019. X!     NEARDATA *uchain = 0, NEARDATA *uball = 0;
  2020. X  
  2021. X  symbol_array defsyms = {
  2022. X      ' ', /* stone */
  2023. X***************
  2024. X*** 245,257 ****
  2025. X  };
  2026. X  
  2027. X  #ifdef SPELLS
  2028. X! struct spell spl_book[MAXSPELL + 1] = DUMMY;
  2029. X  #endif
  2030. X  
  2031. X! long moves = 1, monstermoves = 1; /* These diverge when player is Fast */
  2032. X! long wailmsg = 0;
  2033. X  
  2034. X! struct obj zeroobj = DUMMY;    /* used to zero all elements of a struct obj */
  2035. X  
  2036. X  struct obj *billobjs = 0;
  2037. X  
  2038. X--- 254,267 ----
  2039. X  };
  2040. X  
  2041. X  #ifdef SPELLS
  2042. X! struct spell NEARDATA spl_book[MAXSPELL + 1] = DUMMY;
  2043. X  #endif
  2044. X  
  2045. X! long NEARDATA moves = 1, NEARDATA monstermoves = 1;
  2046. X!      /* These diverge when player is Fast */
  2047. X! long NEARDATA wailmsg = 0;
  2048. X  
  2049. X! struct obj NEARDATA zeroobj = DUMMY;    /* used to zero all elements of a struct obj */
  2050. X  
  2051. X  struct obj *billobjs = 0;
  2052. X  
  2053. X*** src/Old/demon.c    Sun Jun  3 12:52:14 1990
  2054. X--- src/demon.c    Sun Apr 15 10:02:49 1990
  2055. X***************
  2056. X*** 122,127 ****
  2057. X--- 122,129 ----
  2058. X             plur(offer));
  2059. X  
  2060. X      u.ugold -= offer;
  2061. X+     mtmp->mgold += offer;
  2062. X+     flags.botl = 1;
  2063. X      return(offer);
  2064. X  }
  2065. X  #endif
  2066. X
  2067. END_OF_FILE
  2068. if test 50042 -ne `wc -c <'patch8.01'`; then
  2069.     echo shar: \"'patch8.01'\" unpacked with wrong size!
  2070. fi
  2071. # end of 'patch8.01'
  2072. fi
  2073. echo shar: End of archive 12 \(of 24\).
  2074. cp /dev/null ark12isdone
  2075. MISSING=""
  2076. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ; do
  2077.     if test ! -f ark${I}isdone ; then
  2078.     MISSING="${MISSING} ${I}"
  2079.     fi
  2080. done
  2081. if test "${MISSING}" = "" ; then
  2082.     echo You have unpacked all 24 archives.
  2083.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  2084. else
  2085.     echo You still need to unpack the following archives:
  2086.     echo "        " ${MISSING}
  2087. fi
  2088. ##  End of shell archive.
  2089. exit 0
  2090.